#ifndef UC_BRBREP_H
#define UC_BRBREP_H 1

#include "zadesk.h"
#include "zrxobject.h"
#include "zrxboiler.h"
#include "ucbrgbl.h"
#include "ucbrent.h"


// forward class declarations
class UcDbEntity;
class UcDb3dSolid;
class UcDbSurface;
class UcGePoint3d;
class UcGeCurve3d;


class DllImpExp UcBrBrep : public UcBrEntity
{
public:
	using UcBrEntity::set;
	using UcBrEntity::get;

    friend class UcBrEntityImp;

    UCRX_DECLARE_MEMBERS(UcBrBrep);
    UcBrBrep();
    UcBrBrep(const UcBrBrep& src);
    ~UcBrBrep();

    // Assignment operator
    UcBrBrep&           operator =      (const UcBrBrep& src);

	// Set-Membership Classification (Note: deprecated functions)
    UcBr::ErrorStatus   getPointRelationToBrep(const UcGePoint3d& point, UcBr::Relation& relation) const;
    UcBr::ErrorStatus   getCurveRelationToBrep(const UcGeCurve3d& curve, UcBr::Relation& relation) const;

    // Queries & Initialisers
	UcBr::ErrorStatus	set				(const UcDbEntity& entity);
	UcBr::ErrorStatus	get				(UcDb3dSolid*& pSolid) const;
	UcBr::ErrorStatus	get				(UcDbSurface*& pSurface) const;
};


#endif

